package com.wmh.baseservice.operationaid.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wmh.baseservice.operationaid.entity.KeyWordUsageRecord;
import com.wmh.baseservice.operationaid.pojo.vo.keyWordUsageRecord.KeyWordUsageRecordCommitReqVO;
import com.wmh.baseservice.operationaid.pojo.vo.keyWordUsageRecord.KeyWordUsageRecordMaskReqVO;
import com.wmh.baseservice.operationaid.pojo.vo.keyWordUsageRecord.KeyWordUsageRecordRespVO;
import com.wmh.baseservice.operationaid.enums.KeyWordUsageEnums;

import java.util.List;

/**
 * @author dongaolong
 * @description 针对表【operation_aid_key_word_usage_record】的数据库操作Service
 * @createDate 2023-06-20 15:27:56
 */
public interface KeyWordUsageRecordService extends IService<KeyWordUsageRecord> {
    /**
     * 新增
     *
     * @param reqVO 请求体
     */
    void commitUsageRecord(KeyWordUsageRecordCommitReqVO reqVO);


    /**
     * 修改用途记录分组
     * @param ids 主键列表
     * @param groupId 分组主键
     */
    void updateGroupId(List<Long> ids, Long groupId);

    /**
     * 获取未分组的关键词用法记录列表
     *
     * @param categoryName 品类
     * @param adId         管理员id
     * @return
     */
    List<KeyWordUsageRecord> getListNoGroup(String categoryName, Long adId);

    /**
     * 获取已分组关键词用法记录列表
     * @param categoryName  分类名称
     * @param adId 管理员id
     * @param groupId 分组id
     * @return
     */
    List<KeyWordUsageRecord> getList(String categoryName,Long adId,Long groupId);

    /**
     * 添加标记
     *
     * @param reqVO 请求体
     */
    void markUsageRecord(KeyWordUsageRecordMaskReqVO reqVO);

    /**
     * 查询
     *
     * @param adId         用户id
     * @param categoryName 品类名称
     * @param type         要查询的关键词使用类型
     * @param groupId 分组id
     * @return
     */
    List<KeyWordUsageRecordRespVO> getQueryKeyWordUsageRecord(Long adId, String categoryName, KeyWordUsageEnums type,Long groupId);

    /**
     * 批量修改状态
     *
     * @param ids                 主键id
     * @param type      要查询的关键词使用类型
     */
    void getStatusKeyWordUsageRecord(List<String> ids,KeyWordUsageEnums type);

}